package cn.darkhorse.pick.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 
 * </p>
 *
 * @author yangtianqi
 * @since 2025-07-08
 */
@Getter
@Setter
@TableName("pick_order")
@ApiModel(value = "PickOrder对象", description = "")
public class PickOrder implements Serializable, TransPojo {

    private static final long serialVersionUID = 1L;

      @ApiModelProperty("id")
        @TableId(value = "id", type = IdType.AUTO)
      private Long id;

      @ApiModelProperty("作业单号")
      private String orderNumber;

      @ApiModelProperty("农机编号")
      private String deviceCode;

      @ApiModelProperty("农机名称")
      private String deviceName;

      @ApiModelProperty("农户姓名")
      private String farmersName;

      @ApiModelProperty("农户身份证号")
      private String farmersNumber;

      @ApiModelProperty("正采单价")
      private BigDecimal collectPrice;

      @ApiModelProperty("正采亩数")
      private BigDecimal collectArea;

      @ApiModelProperty("正采金额")
      private BigDecimal collectAmount;

      @ApiModelProperty("复采单价")
      private BigDecimal secondaryPrice;

      @ApiModelProperty("复采亩数")
      private BigDecimal secondaryArea;

      @ApiModelProperty("复采金额")
      private BigDecimal secondaryAmount;

      @ApiModelProperty("总计应收款")
      private BigDecimal amountDue;

      @ApiModelProperty("采收开始时间")
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime collectStartTime;

      @TableField(exist = false)
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime collectStartTimeBegin;

      @TableField(exist = false)
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime collectStartTimeEnd;

      @ApiModelProperty("采收结束时间")
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime collectEndTime;

      @TableField(exist = false)
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime collectEndTimeBegin;

      @TableField(exist = false)
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      private LocalDateTime collectEndTimeEnd;

      @ApiModelProperty("创建人")
      private String createBy;

      @ApiModelProperty("创建时间")
      private LocalDateTime createTime;

      @ApiModelProperty("支付时间")
      private LocalDateTime payTime;

      @ApiModelProperty("支付发起时间")
      private LocalDateTime payStartTime;

      @TableField(exist = false)
      private LocalDateTime payTimeBegin;

      @TableField(exist = false)
      private LocalDateTime payTimeEnd;

      @ApiModelProperty("作业单状态")
      @Trans(type = TransType.DICTIONARY,key = "pick_order_status")
      private Integer status;

      @ApiModelProperty("备注")
      private String remark;

      @ApiModelProperty("支付id")
      private String transactionId;

      @ApiModelProperty("支付金额")
      private BigDecimal payAmount;


      @TableField(exist = false)
      private String openId;


      @ApiModelProperty("付款码")
      private String payCode;


}
